<template>
  <div>
    <UploadExcel :on-success="handleSuccess" />
    <!-- {{$route.query.type}} -->
  </div>
</template>

<script>
import { reqAddEmployeeBatch } from '@/api/employee'
export default {
  name: 'Import',
  methods: {
    handleSuccess({ header, results }) {
      if (this.$route.query.type === 'user') {
        this.handleAddEmployeeBatch(header, results)
      }
      if (this.$route.query.type === 'salary') {
        this.handleAddSalaryBatch(header, results)
      }
    },
    async handleAddEmployeeBatch(header, results) {
      // 中英文对照关系
      const userRelations = {
        '入职日期': 'timeOfEntry',
        '手机号': 'mobile',
        '姓名': 'username',
        '转正日期': 'correctionTime',
        '工号': 'workNumber'
      }
      // console.log(header, results)
      // 需求: results确实是数组包对象 但是对象的键是中文
      // 将中文键 换成 英文键
      // reqAddEmployeeBatch(results)

      // 需求1: 利用 forEach  for in 拷贝出一个一样的数组
      // 需求2: 换键
      console.log(results)
      const arr = []

      results.forEach(item => {
        const obj = {}

        for (const key in item) {
          // key 中文键
          // userRelations[key] 英文键
          const englishKey = userRelations[key]
          // const tempKey = key + '-'
          if (englishKey === 'timeOfEntry' || englishKey === 'correctionTime') {
            obj[englishKey] = this.formatExcelDate(item[key], '-')
          } else {
            obj[englishKey] = item[key]
          }
        }

        arr.push(obj)
      })

      // console.log(arr)

      await reqAddEmployeeBatch(arr) // 请求批量新增
      this.$message.success('批量新增成功') // 提示
      this.$router.push('/employees') // 跳转
    },
    handleAddSalaryBatch(header, results) {
      console.log('这次批量新增薪资')
    },
    // 将excel中的日期 转换成 js的日期格式
    formatExcelDate(numb, format) {
      const time = new Date(numb * 24 * 3600000 + 1) // 毫秒
      time.setYear(time.getFullYear() - 70)
      const year = time.getFullYear() + ''
      const month = time.getMonth() + 1 + ''
      const date = time.getDate() - 1 + ''
      if (format && format.length === 1) {
        return year + format + (month < 10 ? '0' + month : month) + format + (date < 10 ? '0' + date : date)
      }
      return year + (month < 10 ? '0' + month : month) + (date < 10 ? '0' + date : date)
    }
  }
}
</script>

<style>

</style>

